package io.renren.modules.psorder.entity;

import com.alibaba.fastjson.JSONArray;
import io.renren.common.utils.excel.annotation.ExcelField;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;


/**
 * 配送订单表
 * 
 * @author wangdajiang
 * @email 2750757088@qq.com
 * @date 2017-12-02 17:22:15
 */
public class PsOrderEntity implements Serializable {
	private static final long serialVersionUID = 1L;
	
	//表id
	private Long id;
	//订单号
	private String ordernum;
	//用户id
	private Long userId;
	//用户电话
	private String userPhone;
	//用户姓名
	private String userName;
	//接单司机id
	private Long driverId;
	//接单司机电话
	private String driverTel;
	//接单司机姓名
	private String driverName;
	//收货人姓名
	private String receiverName;
	//收货人电话
	private String receiverPhone;
	//下单时间
	private Date createTime;
	//接收订单时间
	private Date receiveTime;
	//完成订单时间
	private Date completeTime;
	//起点名称
	private String startName;
	//起点名称详细
	private String startNameDetail;
	//起点经度
	private String startLng;
	//起点纬度
	private String startLat;
	//终点名称
	private String endName;
	//终点名称详情
	private String endNameDetail;
	//终点经度
	private String endLng;
	//终点纬度
	private String endLat;
	//当前地址名称
	private String curAddress;
	//当前地址名称详情
	private String curAddressDetail;
	//当前经度
	private String curLng;
	//当前纬度
	private String curLat;
	//行车距离(理论)
	private String distance;
	//实际行驶距离
	private String realdistance;
	//备注
	private String note;
	//订单状态0-未完成 1-已完成 2-已支付
	private String orderStatus;
	//订单金额
	private Double orderMoney;
	//支付方式
	private String payType;
	//支付时间
	private Date payTime;
	//实际支付金额
	private Double payRealymoney;
	//额外费用
	private BigDecimal extraCharge;
	//额外费用说明
	private String extraChargeNote;
	//支付返回的订单号
	private String payOrder;
	//支付状态
	private String payStatus;
	//车辆类型 1-小面包
	private String vehicleType;
	//是否是预约订单
	private Boolean appointment;
	//预约开始时间
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	private Date appointmentTime;
	//到达发货地时间点
	private Date arriveStartTime;
	//开始出发时间点
	private Date startTime;
	//到达目的地时间点
	private Date arriveEndTime;
	//装货照片路径(照片名称)
	private String loadingImg;
	//起步价
	private BigDecimal startingPrice;
	//超里程费
	private BigDecimal overMilegePrice;
	//等候时间(分钟)
	private Integer waitMinutes;
	//有偿等候费用
	private BigDecimal waitPrice;
	//订单总价
	private BigDecimal totalPrice;
	//超里程单价
	private BigDecimal milegeUnitPrice;
	//优惠券id
	private Long psCouponId;
	//合作或签约客户名称(暂不收费时填)
	private String customerName;
	//送货单号(暂不收费时填)
	private String deliverNo;
	//暂不收费原因(选填)
	private String zbsfyy;
	//是否已评价司机
	private Boolean isEvaluated;
	//是否已收藏司机
	private Boolean isCollected;
	//超里程公里数
	private BigDecimal overMilege;
	//到达第几个目的地
	private Integer arriveDesNum;
	//多目的地json数组
	private JSONArray destinationJsonArray;
	//是否是最后一个目的地
	private Boolean isLastDes;
	//多次修改价格总和(暂未使用)
	private BigDecimal sumModifyPrice;


	//司机信息
	private String mobile;
	private String sex;
	private String nickname;
	private String realname;
	private String age;
	private String idCard;
	private String avatar;
	private String carstyle;
	private String carno;
	private String avgStarRank;
	private String completeOrderSum;
    //地点
	private String branchCompanyId;
	private String branchCompany;
	private String netPointId;
	private String netPoint;

	public String getBranchCompanyId() {
		return branchCompanyId;
	}

	public void setBranchCompanyId(String branchCompanyId) {
		this.branchCompanyId = branchCompanyId;
	}

	public String getBranchCompany() {
		return branchCompany;
	}

	public void setBranchCompany(String branchCompany) {
		this.branchCompany = branchCompany;
	}

	public String getNetPointId() {
		return netPointId;
	}

	public void setNetPointId(String netPointId) {
		this.netPointId = netPointId;
	}

	public String getNetPoint() {
		return netPoint;
	}

	public void setNetPoint(String netPoint) {
		this.netPoint = netPoint;
	}

	public String getCurAddressDetail() {
		return curAddressDetail;
	}

	public void setCurAddressDetail(String curAddressDetail) {
		this.curAddressDetail = curAddressDetail;
	}

	public Boolean getLastDes() {
		return isLastDes;
	}

	public void setLastDes(Boolean lastDes) {
		isLastDes = lastDes;
	}

	public String getMobile() {
		return mobile;
	}

	public void setMobile(String mobile) {
		this.mobile = mobile;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	public String getNickname() {
		return nickname;
	}

	public void setNickname(String nickname) {
		this.nickname = nickname;
	}

	public String getRealname() {
		return realname;
	}

	public void setRealname(String realname) {
		this.realname = realname;
	}

	public String getAge() {
		return age;
	}

	public void setAge(String age) {
		this.age = age;
	}

	public String getIdCard() {
		return idCard;
	}

	public void setIdCard(String idCard) {
		this.idCard = idCard;
	}

	public String getAvatar() {
		return avatar;
	}

	public void setAvatar(String avatar) {
		this.avatar = avatar;
	}

	public String getCarstyle() {
		return carstyle;
	}

	public void setCarstyle(String carstyle) {
		this.carstyle = carstyle;
	}

	public String getCarno() {
		return carno;
	}

	public void setCarno(String carno) {
		this.carno = carno;
	}

	public String getAvgStarRank() {
		return avgStarRank;
	}

	public void setAvgStarRank(String avgStarRank) {
		this.avgStarRank = avgStarRank;
	}

	public String getCompleteOrderSum() {
		return completeOrderSum;
	}

	public void setCompleteOrderSum(String completeOrderSum) {
		this.completeOrderSum = completeOrderSum;
	}

	/**
	 * 设置：表id
	 */
	public void setId(Long id) {
		this.id = id;
	}
	/**
	 * 获取：表id
	 */
	public Long getId() {
		return id;
	}
	/**
	 * 设置：订单号
	 */
	public void setOrdernum(String ordernum) {
		this.ordernum = ordernum;
	}
	/**
	 * 获取：订单号
	 */
	@ExcelField(title="订单号", align=2, sort=1)
	public String getOrdernum() {
		return ordernum;
	}
	/**
	 * 设置：用户id
	 */
	public void setUserId(Long userId) {
		this.userId = userId;
	}
	/**
	 * 获取：用户id
	 */
	public Long getUserId() {
		return userId;
	}
	/**
	 * 设置：用户电话
	 */
	public void setUserPhone(String userPhone) {
		this.userPhone = userPhone;
	}
	/**
	 * 获取：用户电话
	 */
	@ExcelField(title="用户电话", align=2, sort=2)
	public String getUserPhone() {
		return userPhone;
	}
	/**
	 * 设置：用户姓名
	 */
	public void setUserName(String userName) {
		this.userName = userName;
	}
	/**
	 * 获取：用户姓名
	 */
	@ExcelField(title="用户姓名", align=2, sort=3)
	public String getUserName() {
		return userName;
	}
	/**
	 * 设置：接单司机id
	 */
	public void setDriverId(Long driverId) {
		this.driverId = driverId;
	}
	/**
	 * 获取：接单司机id
	 */
	public Long getDriverId() {
		return driverId;
	}
	/**
	 * 设置：接单司机电话
	 */
	public void setDriverTel(String driverTel) {
		this.driverTel = driverTel;
	}
	/**
	 * 获取：接单司机电话
	 */
	@ExcelField(title="接单司机电话", align=2, sort=4)
	public String getDriverTel() {
		return driverTel;
	}

	@ExcelField(title="接单司机姓名", align=2, sort=5)
	public String getDriverName() {
		return driverName;
	}
	public void setDriverName(String driverName) {
		this.driverName = driverName;
	}

	/**
	 * 设置：收货人姓名
	 */
	public void setReceiverName(String receiverName) {
		this.receiverName = receiverName;
	}
	/**
	 * 获取：收货人姓名
	 */
	@ExcelField(title="收货人姓名", align=2, sort=6)
	public String getReceiverName() {
		return receiverName;
	}
	/**
	 * 设置：收货人电话
	 */
	public void setReceiverPhone(String receiverPhone) {
		this.receiverPhone = receiverPhone;
	}
	/**
	 * 获取：收货人电话
	 */
	@ExcelField(title="收货人电话", align=2, sort=7)
	public String getReceiverPhone() {
		return receiverPhone;
	}

	/**
	 * 设置：下单时间
	 */
	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}
	/**
	 * 获取：下单时间
	 */
	@ExcelField(title="下单时间", align=2, sort=8)
	public Date getCreateTime() {
		return createTime;
	}
	/**
	 * 设置：接收订单时间
	 */
	public void setReceiveTime(Date receiveTime) {
		this.receiveTime = receiveTime;
	}
	/**
	 * 获取：接收订单时间
	 */
	@ExcelField(title="接收订单时间", align=2, sort=9)
	public Date getReceiveTime() {
		return receiveTime;
	}
	/**
	 * 设置：完成订单时间
	 */
	public void setCompleteTime(Date completeTime) {
		this.completeTime = completeTime;
	}
	/**
	 * 获取：完成订单时间
	 */
	@ExcelField(title="完成订单时间", align=2, sort=10)
	public Date getCompleteTime() {
		return completeTime;
	}
	/**
	 * 设置：起点名称
	 */
	public void setStartName(String startName) {
		this.startName = startName;
	}
	/**
	 * 获取：起点名称
	 */
	@ExcelField(title="起点名称", align=2, sort=11)
	public String getStartName() {
		return startName;
	}
	@ExcelField(title="起点名称详细", align=2, sort=12)
	public String getStartNameDetail() {
		return startNameDetail;
	}

	public void setStartNameDetail(String startNameDetail) {
		this.startNameDetail = startNameDetail;
	}

	/**
	 * 设置：起点经度
	 */

	public void setStartLng(String startLng) {
		this.startLng = startLng;
	}
	/**
	 * 获取：起点经度
	 */
	@ExcelField(title="起点经度", align=2, sort=13)
	public String getStartLng() {
		return startLng;
	}
	/**
	 * 设置：起点纬度
	 */
	public void setStartLat(String startLat) {
		this.startLat = startLat;
	}
	/**
	 * 获取：起点纬度
	 */
	@ExcelField(title="起点纬度", align=2, sort=14)
	public String getStartLat() {
		return startLat;
	}
	/**
	 * 设置：终点名称
	 */
	public void setEndName(String endName) {
		this.endName = endName;
	}
	/**
	 * 获取：终点名称
	 */
	@ExcelField(title="终点名称", align=2, sort=15)
	public String getEndName() {
		return endName;
	}
	@ExcelField(title="终点名称详细", align=2, sort=16)
	public String getEndNameDetail() {
		return endNameDetail;
	}
	public void setEndNameDetail(String endNameDetail) {
		this.endNameDetail = endNameDetail;
	}
	/**
	 * 设置：终点经度
	 */
	public void setEndLng(String endLng) {
		this.endLng = endLng;
	}
	/**
	 * 获取：终点经度
	 */
	@ExcelField(title="终点经度", align=2, sort=17)
	public String getEndLng() {
		return endLng;
	}
	/**
	 * 设置：终点纬度
	 */
	public void setEndLat(String endLat) {
		this.endLat = endLat;
	}
	/**
	 * 获取：终点纬度
	 */
	@ExcelField(title="终点经度", align=2, sort=18)
	public String getEndLat() {
		return endLat;
	}
	/**
	 * 设置：当前地址名称
	 */
	public void setCurAddress(String curAddress) {
		this.curAddress = curAddress;
	}
	/**
	 * 获取：当前地址名称
	 */
	@ExcelField(title="当前地址名称", align=2, sort=19)
	public String getCurAddress() {
		return curAddress;
	}
	/**
	 * 设置：当前经度
	 */
	public void setCurLng(String curLng) {
		this.curLng = curLng;
	}
	/**
	 * 获取：当前经度
	 */
	public String getCurLng() {
		return curLng;
	}
	/**
	 * 设置：当前纬度
	 */
	public void setCurLat(String curLat) {
		this.curLat = curLat;
	}
	/**
	 * 获取：当前纬度
	 */
	public String getCurLat() {
		return curLat;
	}
	/**
	 * 设置：行车距离(理论)
	 */
	public void setDistance(String distance) {
		this.distance = distance;
	}
	/**
	 * 获取：行车距离(理论)
	 */
	@ExcelField(title="行车距离(理论)", align=2, sort=20)
	public String getDistance() {
		return distance;
	}
	/**
	 * 设置：实际行驶距离
	 */
	public void setRealdistance(String realdistance) {
		this.realdistance = realdistance;
	}
	/**
	 * 获取：实际行驶距离
	 */
	@ExcelField(title="实际行驶距离", align=2, sort=21)
	public String getRealdistance() {
		return realdistance;
	}
	/**
	 * 设置：备注
	 */
	public void setNote(String note) {
		this.note = note;
	}
	/**
	 * 获取：备注
	 */
	@ExcelField(title="备注", align=2, sort=22)
	public String getNote() {
		return note;
	}
	/**
	 * 设置：订单状态0-未完成 1-已完成 2-已支付
	 */
	public void setOrderStatus(String orderStatus) {
		this.orderStatus = orderStatus;
	}
	/**
	 * 获取：订单状态0-未完成 1-已完成 2-已支付
	 */
	@ExcelField(title="订单状态", align=2, sort=23)
	public String getOrderStatus() {
		return orderStatus;
	}
	/**
	 * 设置：订单金额
	 */
	public void setOrderMoney(Double orderMoney) {
		this.orderMoney = orderMoney;
	}
	/**
	 * 获取：订单金额
	 */
	@ExcelField(title="订单金额", align=2, sort=24)
	public Double getOrderMoney() {
		return orderMoney;
	}
	/**
	 * 设置：支付方式
	 */
	public void setPayType(String payType) {
		this.payType = payType;
	}
	/**
	 * 获取：支付方式
	 */
	@ExcelField(title="支付方式", align=2, sort=25)
	public String getPayType() {
		return payType;
	}
	/**
	 * 设置：支付时间
	 */
	public void setPayTime(Date payTime) {
		this.payTime = payTime;
	}
	/**
	 * 获取：支付时间
	 */
	@ExcelField(title="支付时间", align=2, sort=26)
	public Date getPayTime() {
		return payTime;
	}
	/**
	 * 设置：实际支付金额
	 */
	public void setPayRealymoney(Double payRealymoney) {
		this.payRealymoney = payRealymoney;
	}
	/**
	 * 获取：实际支付金额
	 */
	@ExcelField(title="实际支付金额", align=2, sort=27)
	public Double getPayRealymoney() {
		return payRealymoney;
	}
	/**
	 * 设置：额外费用
	 */
	public void setExtraCharge(BigDecimal extraCharge) {
		this.extraCharge = extraCharge;
	}
	/**
	 * 获取：额外费用
	 */
	@ExcelField(title="额外费用", align=2, sort=28)
	public BigDecimal getExtraCharge() {
		return extraCharge;
	}
	/**
	 * 设置：额外费用说明
	 */
	public void setExtraChargeNote(String extraChargeNote) {
		this.extraChargeNote = extraChargeNote;
	}
	/**
	 * 获取：额外费用说明
	 */
	@ExcelField(title="额外费用说明", align=2, sort=29)
	public String getExtraChargeNote() {
		return extraChargeNote;
	}
	/**
	 * 设置：支付返回的订单号
	 */
	public void setPayOrder(String payOrder) {
		this.payOrder = payOrder;
	}
	/**
	 * 获取：支付返回的订单号
	 */
	@ExcelField(title="支付返回的订单号", align=2, sort=30)
	public String getPayOrder() {
		return payOrder;
	}
	/**
	 * 设置：支付状态
	 */
	public void setPayStatus(String payStatus) {
		this.payStatus = payStatus;
	}
	/**
	 * 获取：支付状态
	 */
	@ExcelField(title="支付状态", align=2, sort=31)
	public String getPayStatus() {
		return payStatus;
	}
	/**
	 * 设置：车辆类型 1-小面包
	 */
	public void setVehicleType(String vehicleType) {
		this.vehicleType = vehicleType;
	}
	/**
	 * 获取：车辆类型 1-小面包
	 */
	@ExcelField(title="车辆类型", align=2, sort=32)
	public String getVehicleType() {
		return vehicleType;
	}
	/**
	 * 获取：是否是预约订单
	 */
	public Boolean getAppointment() {
		return appointment;
	}
	/**
	 * 设置：是否是预约订单
	 */
	@ExcelField(title="是否是预约订单", align=2, sort=33)
	public void setAppointment(Boolean appointment) {
		this.appointment = appointment;
	}
	/**
	 * 获取：预约开始时间
	 */
	public Date getAppointmentTime() {
		return appointmentTime;
	}
	/**
	 * 设置：预约开始时间
	 */
	public void setAppointmentTime(Date appointmentTime) {
		this.appointmentTime = appointmentTime;
	}
	/**
	 * 设置：到达发货地时间点
	 */
	public void setArriveStartTime(Date arriveStartTime) {
		this.arriveStartTime = arriveStartTime;
	}
	/**
	 * 获取：到达发货地时间点
	 */
	public Date getArriveStartTime() {
		return arriveStartTime;
	}
	/**
	 * 设置：开始出发时间点
	 */
	public void setStartTime(Date startTime) {
		this.startTime = startTime;
	}
	/**
	 * 获取：开始出发时间点
	 */
	public Date getStartTime() {
		return startTime;
	}
	/**
	 * 设置：到达目的地时间点
	 */
	public void setArriveEndTime(Date arriveEndTime) {
		this.arriveEndTime = arriveEndTime;
	}
	/**
	 * 获取：到达目的地时间点
	 */
	public Date getArriveEndTime() {
		return arriveEndTime;
	}
	/**
	 * 设置：装货照片路径(照片名称)
	 */
	public void setLoadingImg(String loadingImg) {
		this.loadingImg = loadingImg;
	}
	/**
	 * 获取：装货照片路径(照片名称)
	 */
	public String getLoadingImg() {
		return loadingImg;
	}
	/**
	 * 设置：起步价
	 */
	public void setStartingPrice(BigDecimal startingPrice) {
		this.startingPrice = startingPrice;
	}
	/**
	 * 获取：起步价
	 */
	public BigDecimal getStartingPrice() {
		return startingPrice;
	}
	/**
	 * 设置：超里程费
	 */
	public void setOverMilegePrice(BigDecimal overMilegePrice) {
		this.overMilegePrice = overMilegePrice;
	}
	/**
	 * 获取：超里程费
	 */
	public BigDecimal getOverMilegePrice() {
		return overMilegePrice;
	}
	/**
	 * 设置：等候时间(分钟)
	 */
	public void setWaitMinutes(Integer waitMinutes) {
		this.waitMinutes = waitMinutes;
	}
	/**
	 * 获取：等候时间(分钟)
	 */
	public Integer getWaitMinutes() {
		return waitMinutes;
	}
	/**
	 * 设置：有偿等候费用
	 */
	public void setWaitPrice(BigDecimal waitPrice) {
		this.waitPrice = waitPrice;
	}
	/**
	 * 获取：有偿等候费用
	 */
	public BigDecimal getWaitPrice() {
		return waitPrice;
	}
	/**
	 * 设置：订单总价
	 */
	public void setTotalPrice(BigDecimal totalPrice) {
		this.totalPrice = totalPrice;
	}
	/**
	 * 获取：订单总价
	 */
	public BigDecimal getTotalPrice() {
		return totalPrice;
	}
	/**
	 * 设置：超里程单价
	 */
	public void setMilegeUnitPrice(BigDecimal milegeUnitPrice) {
		this.milegeUnitPrice = milegeUnitPrice;
	}
	/**
	 * 获取：超里程单价
	 */
	public BigDecimal getMilegeUnitPrice() {
		return milegeUnitPrice;
	}
	/**
	 * 设置：优惠券id
	 */
	public void setPsCouponId(Long psCouponId) {
		this.psCouponId = psCouponId;
	}
	/**
	 * 获取：优惠券id
	 */
	public Long getPsCouponId() {
		return psCouponId;
	}
	/**
	 * 设置：合作或签约客户名称(暂不收费时填)
	 */
	public void setCustomerName(String customerName) {
		this.customerName = customerName;
	}
	/**
	 * 获取：合作或签约客户名称(暂不收费时填)
	 */
	public String getCustomerName() {
		return customerName;
	}
	/**
	 * 设置：送货单号(暂不收费时填)
	 */
	public void setDeliverNo(String deliverNo) {
		this.deliverNo = deliverNo;
	}
	/**
	 * 获取：送货单号(暂不收费时填)
	 */
	public String getDeliverNo() {
		return deliverNo;
	}
	/**
	 * 设置：暂不收费原因(选填)
	 */
	public void setZbsfyy(String zbsfyy) {
		this.zbsfyy = zbsfyy;
	}
	/**
	 * 获取：暂不收费原因(选填)
	 */
	public String getZbsfyy() {
		return zbsfyy;
	}

	public Boolean getEvaluated() {
		return isEvaluated;
	}

	public void setEvaluated(Boolean evaluated) {
		isEvaluated = evaluated;
	}

	public Boolean getCollected() {
		return isCollected;
	}

	public void setCollected(Boolean collected) {
		isCollected = collected;
	}

	/**
	 * 设置：超里程公里数
	 */
	public void setOverMilege(BigDecimal overMilege) {
		this.overMilege = overMilege;
	}
	/**
	 * 获取：超里程公里数
	 */
	public BigDecimal getOverMilege() {
		return overMilege;
	}
	/**
	 * 设置：到达第几个目的地
	 */
	public void setArriveDesNum(Integer arriveDesNum) {
		this.arriveDesNum = arriveDesNum;
	}
	/**
	 * 获取：到达第几个目的地
	 */
	public Integer getArriveDesNum() {
		return arriveDesNum;
	}

	public JSONArray getDestinationJsonArray() {
		return destinationJsonArray;
	}

	public void setDestinationJsonArray(JSONArray destinationJsonArray) {
		this.destinationJsonArray = destinationJsonArray;
	}
	/**
	 * 设置：是否是最后一个目的地
	 */
	public void setIsLastDes(Boolean isLastDes) {
		this.isLastDes = isLastDes;
	}
	/**
	 * 获取：是否是最后一个目的地
	 */
	public Boolean getIsLastDes() {
		return isLastDes;
	}
	/**
	 * 设置：多次修改价格总和
	 */
	public void setSumModifyPrice(BigDecimal sumModifyPrice) {
		this.sumModifyPrice = sumModifyPrice;
	}
	/**
	 * 获取：多次修改价格总和
	 */
	public BigDecimal getSumModifyPrice() {
		return sumModifyPrice;
	}

}
